package com.rc.web.controller;

import com.mybatisflex.core.paginate.Page;
import com.rc.pojo.dto.task.TaskAddDTO;
import com.rc.pojo.dto.task.TaskQuery;
import com.rc.pojo.dto.task.TaskUpdateDTO;
import com.rc.pojo.vo.task.TaskPageVO;
import com.rc.pojo.vo.task.TaskVO;
import com.rc.web.service.TaskService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

/**
 * 活动表 控制层。
 *
 * @author sym
 * @since 2024-05-26
 */
@RestController
@RequestMapping("/task")
@Api(tags = "维护记录")
@RequiredArgsConstructor
@Validated
public class TaskController {
    private final TaskService taskService;

    @PostMapping
    public void add(@Validated @RequestBody TaskAddDTO dto) {
        taskService.add(dto);
    }

    @DeleteMapping("/{id}")
    public void deleteOneById(@PathVariable Long id) {
        taskService.deleteOneById(id);
    }

    @PutMapping
    public void update(@Validated @RequestBody TaskUpdateDTO dto) {
        taskService.updateOneById(dto);
    }

    @GetMapping("/{id}")
    public TaskVO getOneById(@PathVariable Long id) {
        return taskService.getOneById(id);
    }

    @GetMapping("/page")
    @ApiOperation("查看植物维护记录")
    public Page<TaskPageVO> list(TaskQuery query) {
        return taskService.getPage(query);
    }
}
